Oni su u primjeru dali kako se radi hash datoteke, ali ne i stringa. Nešto sam našao na netu da ide u stilu
Code (cpp):
char cDigest[64];
SHA512 sh;
memset(cDigest, 0, sizeof(cDigest));
sh.Update((BYTE*)"test", strlen("test"));
sh.Final(cDigest);
SHA512 sh;
memset(cDigest, 0, sizeof(cDigest));
sh.Update((BYTE*)"test", strlen("test"));
sh.Final(cDigest);
Ovo čak i prolazi, ali na izlazu dobijem hrpu neformatiranih znakova, no opet, može sve biti potpuno netočno.
Ima li itko primjer za izradu hash-a stringa za SHA256/512? Može za Crypto++, ali i bilo koju drugu biblioteku u kojoj to radi.
EDIT:
Uspio sam rješiti. Postupak je dobar, ali je bilo potrebno upotrijebiti HexEncoder, pa ako će ikome trebati evo kako glasi sve:
Code (cpp):
char cDigest[64], izhex[64];
memset(cDigest, 0, sizeof(cDigest));
SHA512 sh;
sh.Restart();
sh.Update((BYTE*)"test123",strlen("test123"));
sh.Final(cDigest);
std::string encoded;
CryptoPP::HexEncoder encoder( new CryptoPP::StringSink( encoded ),
true /* Uppercase */, 2 /* Grouping */, "" /* Separator */ );
encoder.Put((const unsigned char*)cDigest, 64,true);
encoder.MessageEnd();
char cDigest[64], izhex[64];
memset(cDigest, 0, sizeof(cDigest));
SHA512 sh;
sh.Restart();
sh.Update((BYTE*)"test123",strlen("test123"));
sh.Final(cDigest);
std::string encoded;
CryptoPP::HexEncoder encoder( new CryptoPP::StringSink( encoded ),
true /* Uppercase */, 2 /* Grouping */, "" /* Separator */ );
encoder.Put((const unsigned char*)cDigest, 64,true);
encoder.MessageEnd();
... izlazni string je encoded.
[Ovu poruku je menjao itf dana 26.12.2010. u 00:51 GMT+1]